package day03.io;
//import java.io.*;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectOutputStream;

import  day03.io.Person;
/*
* 对象流
* java.io.ObjectInputStream和ObjectOutputStream
* 对象流是一对高级流，在流连接中的作用是进行对象序列化与反序列化
* 对象序列化:将一个对象按照其结构转换为一组字节的过程
* 对象反序列:将一组字节(必须是序列化的一组字节)还原为一个对象的过程
*
* 因此，有了对象流，可以很方便的读写任何java对象
* */
public class OOSDemo {
    public static void main(String[] args) throws IOException {
//        将一个Person实例写入文件Person.obj中
        String name="小泽玛利亚";
        int age=18;
        String gender="女";
        String[] otherInfo={"点击快乐时光","附件","的是","的感觉"};
        Person p=new Person(name,age,gender,otherInfo);
        FileOutputStream fos=new FileOutputStream("person.obj");
        ObjectOutputStream oos=new ObjectOutputStream(fos);
        /*对象输出流在进行对象序列化时要求写出的对象必须实现可序列化接口，否则
        * 会抛出异常:java.io.NotSerializableException
        * 序列化接口：java.io.Serializable
        * */
        oos.writeObject(p);
        System.out.println("写出完毕");
        oos.close();
    }
}
